Contemporary computer networks consist of a number of computer systems communicating with other computer systems via communication links. Typically, some of the systems are client machines and other systems are server machines. A server machine may host a variety of application programs that can be accessed and executed by client machines. When a client machine launches an application program, the execution of that application program can occur at either the client machine or the server machine, depending upon the computing model followed by the computer network. In some environments, the server machine executes a virtual machine, which executes the application program and provides output data to the client machine.
One drawback of contemporary computer networks is that client machines may be unaware of the application programs and resources available for use on the server machines. In fact, client machines may not even be aware of each available server machine on the network. Additionally, in environments in which a virtual machine provides access to a resource for the client machine, the virtual machine may be relocated from one server machine to another server. In other environments in which a virtual machine provides access to a resource for the client machine, the client machine may not know that a virtual machine provides access to the application program. To find available application programs on a particular server machine, a user of the client machine may need to find and gain access to that server machine and perform a directory listing of the files existing on that server machine. Even then, this listing might not indicate to the user those applications which the user is authorized to use.
Moreover, once the user is aware of the application programs on a server machine, often that user must establish a link to those applications. There are software tools to aid the user in creating these links. However, these tools typically require that the user be an administrator with an understanding the details of networking protocols and domains in order to establish the connection.
A method for identifying and providing access to virtualized resources available to a user of the client machine, including application programs, desktop environments, and other computing environments provided via virtual machines executing on server machines would be desirable.